package exception;

/**
 * java异常处理机制中的try...catch
 * 语法：
 * try{
 *      正常
 * }catch{
 *
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");

        try { //报空指针异常、报字符串下标异常、不报异常
            String str = null;
            System.out.println(str.length());
            /*String str = "abc";
            System.out.println(str.charAt(5));*/
            //try中的代码不出现异常时，catch语句块是不执行的
            //try语句块中某语句发生异常后，try中剩余代码不会被执行
            System.out.println("!!!!!!");
      /*  }catch (NullPointerException e){
            System.out.println("出现了空指针，并处理完毕了");
        }catch (StringIndexOutOfBoundsException e){
            System.out.println("出现了空符串下标越界异常，并处理完毕了");
        }*/
        }catch (NullPointerException|StringIndexOutOfBoundsException e){
            System.out.println("出现了空指针或者下标越界异常，并且用相同的方式处理完毕了");
        }catch (Exception e){//捕获超类型异常，那么它的所有子类型异常都可以被处理
            System.out.println("方正出了错误！");
        }

        System.out.println("程序结束了");
    }
}
